<?php
/**
 * PrynLib
 * @copyright 2007-2009 Prynel
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @category libPrynel
 * @package Form
 * @version $Revision: 80 $
 */

/**
 *
 * @category libPrynel
 * @package Form
 * @subpackage Form_Element
 * @version 1.0.0 
 * @author Olivier ROGER <roger.olivier@gmail.com>
 * @copyright  2007-2009 Prynel
 *       
 *
 */
class Form_Element_Slider extends Form_Element_Hidden
{
	/**
	 * Nom de l'élément
	 *
	 * @var string
	 */
	private $nom;
	
	/**
	 * Limite haute du slider
	 *
	 * @var int
	 */
	private $maxRange;
	
	/**
	 * Limite basse du slider
	 *
	 * @var int
	 */
	private $minRange;
	
	/**
	 * Valeurs intermédiaire pour le slider
	 *
	 * @var array
	 */
	private $values;
	
	/**
	 * Constructeur
	 *
	 * @param string $nom
	 * @param Form_Form $form
	 */
	public function __construct($nom,$form)
	{
		parent::__construct($nom,$form);
		$this->nom = $nom;
		$this->maxRange = 100;
		$this->minRange = 0;
		$this->values = array();
	}
	
	/**
	 * Défini le range du slider
	 *
	 * @param int $min
	 * @param int $max
	 * @return Form_Element_Slider
	 */
	public function setRange($min,$max)
	{
		$this->maxRange = $max;
		$this->minRange = $min;
		return $this;
	}
	
	/**
	 * Défini les valeurs intermédiaires
	 *
	 * @param array $values
	 */
	public function setValues($values)
	{
		if(is_array($values))
			$this->values = $values;
		else
			array_push($this->values,$values);
	}
	
	public function __toString()
	{
		$html = '<div id="lignescroll" class="lignescroll">
					<div id="curseur" class="curseur"></div>
		         </div>
		';
		$js = '<script type="text/javascript">
				Event.onDOMReady(function(){
				    new Control.Slider(\'curseur\',\'lignescroll\',{
					range:$R('.$this->maxRange.','.$this->minRange.'),
					values:['.implode(',',$this->values).'],
					onChange:function(v){$(\''.$this->nom.'\').value=v}})
				});
				</script>';
		$html.= parent::__toString();
		return $html.$js;
	}
}
 ?>